SMSCODES = {
    "Aliant": "@chat.wirefree.ca",
    "Alltel": "@message.alltel.com",
    "Ameritech": "@paging.acswireless.com",
    "AT&T": "@txt.att.net",
    "AU by KDDI": "@ezweb.ne.jp",
    "BeeLine GSM": "@sms.beemail.ru",
    "Bell Mobility Canada": "@txt.bellmobility.ca",
    "Bellsouth": "@bellsouth.cl",
    "BellSouth Mobility": "@blsdcs.net",
    "Blue Sky Frog": "@blueskyfrog.com",
    "Boost": "@myboostmobile.com",
    "Cellular South": "@csouth1.com",
    "CellularOne": "@mobile.celloneusa.com",
    "CellularOne West": "@mycellone.com",
    "Cincinnati Bell": "@gocbw.com",
    "Claro": "@clarotorpedo.com.br",
    "Comviq": "@sms.comviq.se",
    "Dutchtone/Orange-NL": "@sms.orange.nl",
    "Edge Wireless": "@sms.edgewireless.com",
    "EinsteinPCS / Airadigm Communications": "@einsteinsms.com",
    "EPlus": "@smsmail.eplus.de",
    "Fido Canada": "@fido.ca",
    "Golden Telecom": "@sms.goldentele.com",
    "Idea Cellular": "@ideacellular.net",
    "Kyivstar": "@sms.kyivstar.net",
    "LMT": "@sms.lmt.lv",
    "Manitoba Telecom Systems": "@text.mtsmobility.com",
    "Meteor": "@sms.mymeteor.ie",
    "Metro PCS": "@mymetropcs.com",
    "Metrocall Pager": "@page.metrocall.com",
    "MobileOne": "@m1.com.sg",
    "Mobilfone": "@page.mobilfone.com",
    "Mobility Bermuda": "@ml.bm",
    "Netcom": "@sms.netcom.no",
    "Nextel": "@messaging.nextel.com",
    "NPI Wireless": "@npiwireless.com",
    "O2": "@o2.co.uk",
    "O2 M-mail": "@mmail.co.uk",
    "Optus": "@optusmobile.com.au",
    "Orange": "@orange.net",
    "Oskar": "@mujoskar.cz",
    "Pagenet": "@pagenet.net",
    "PCS Rogers": "@pcs.rogers.com",
    "Personal Communication": "@pcom.ru",
    "Plus GSM Poland": "@text.plusgsm.pl",
    "Powertel": "@ptel.net",
    "Primtel": "@sms.primtel.ru",
    "PSC Wireless": "@sms.pscel.com",
    "Qualcomm": "@pager.qualcomm.com",
    "Qwest": "@qwestmp.com",
    "Safaricom": "@safaricomsms.com",
    "Satelindo GSM": "@satelindogsm.com",
    "SCS-900": "@scs-900.ru",
    "Simple Freedom": "@text.simplefreedom.net",
    "Skytel - Alphanumeric": "@skytel.com",
    "Smart Telecom": "@mysmart.mymobile.ph",
    "Southern Linc": "@page.southernlinc.com",
    "Sprint PCS": "@messaging.sprintpcs.com",
    "Sprint PCS - Short Mail": "@sprintpcs.com",
    "SunCom": "@tms.suncom.com",
    "SureWest Communications": "@mobile.surewest.com",
    "SwissCom Mobile": "@bluewin.ch",
    "T-Mobile Germany": "@T-D1-SMS.de",
    "T-Mobile Netherlands": "@gin.nl",
    "T-Mobile UK": "@t-mobile.uk.net",
    "T-Mobile USA (tmail)": "@tmail.com",
    "T-Mobile USA (tmomail)": "@tmomail.net",
    "Tele2 Latvia": "@sms.tele2.lv",
    "Telefonica Movistar": "@movistar.net",
    "Telenor": "@mobilpost.no",
    "Telia Denmark": "@gsm1800.telia.dk",
    "Telus Mobility": "@msg.telus.com",
    "The Phone House": "@sms.phonehouse.de",
    "TIM": "@timnet.com",
    "UMC": "@sms.umc.com.ua",
    "Unicel": "@utext.com",
    "US Cellular": "@email.uscc.net",
    "Verizon Wireless (vtext)": "@vtext.com",
    "Verizon Wireless (airtouchpaging)": "@airtouchpaging.com",
    "Verizon Wireless (myairmail)": "@myairmail.com",
    "Vessotel": "@pager.irkutsk.ru",
    "Virgin Mobile Canada": "@vmobile.ca",
    "Virgin Mobile USA": "@vmobl.com",
    "Vodafone Italy": "@sms.vodafone.it",
    "Vodafone Japan (n)": "@n.vodafone.ne.jp",
    "Vodafone Japan (d)": "@d.vodafone.ne.jp",
    "Vodafone Japan (r)": "@r.vodafone.ne.jp",
    "Vodafone Japan (k)": "@k.vodafone.ne.jp",
    "Vodafone Japan (t)": "@t.vodafone.ne.jp",
    "Vodafone Japan (q)": "@q.vodafone.ne.jp",
    "Vodafone Japan (s)": "@s.vodafone.ne.jp",
    "Vodafone Japan (h)": "@h.vodafone.ne.jp",
    "Vodafone Japan (c)": "@c.vodafone.ne.jp",
    "Vodafone Spain": "@vodafone.es",
    "Vodafone UK": "@vodafone.net",
    "Weblink Wireless": "@airmessage.net",
    "WellCom": "@sms.welcome2well.com",
    "WyndTell": "@wyndtell.com",
}


def sms_email(number, provider):
    """
    >>> print sms_email('1 (312) 375-6536','T-Mobile USA (tmail)')
    print 13123756536@tmail.com
    """
    import re

    if number[0] == "+1":
        number = number[1:]
    elif number[0] == "+":
        number = number[3:]
    elif number[:2] == "00":
        number = number[3:]
    number = re.sub("[^\d]", "", number)
    return number + SMSCODES[provider]
